package com.sxj.PDMS.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 学生信息列表
 *
 * @TableName student
 */
@TableName(value = "student")
@Data
public class Student implements Serializable {
    /**
     * 学号 非空
     */
    @TableId
    private String studentNumber;

    /**
     * 密码 非空
     */
    private String password;

    /**
     * 姓名 非空
     */
    private String name;

    /**
     * 性别 男/女 非空
     */
    private String gender;

    /**
     * 班级 非空
     */

    private String grade;

    /**
     * 出生年月日 非空
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date dateOfBirth;

    /**
     * 民族 非空
     */
    private String nation;

    /**
     * 籍贯 非空
     */
    private String nativePlace;

    /**
     * 详细家庭住址 非空
     */
    private String fullHomeAddress;

    /**
     * 身份证号 非空
     */
    private String idNumber;

    /**
     * 联系电话 非空
     */
    private String phoneNumber;

    /**
     * 所在党支部 非空
     */
    private String thePartyBranch;

    /**
     * 递交入党申请书落款日期 非空
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date theDateOfSubmissionOfTheApplicationForPartyMembership;

    /**
     * 所在宿舍 非空
     */
    private String liveInTheDormitory;

    /**
     * 发展状态 0群众 1团员 2已提交入党申请书 3积极分子 4发展对象 5预备党员 6正式党员
     */
    private Integer statue;

    /**
     * 邮箱 非空
     */
    private String email;

    /**
     * 文化程度 0小学 1初中 2高中 3中专 4大专 5本科 6硕士 7博士
     */
    private Integer educationLevel;

    /**
     * 入学年份 非空
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date enrollmentTime;

    /**
     * 是否在挂科 0否 1是 非空
     */
    private Integer isFailingClass;

    /**
     * 曾挂学分 非空
     */
    private Double previousCredit;

    /**
     * 职务
     */
    private String position;

    /**
     * 是否删除
     */
    @TableLogic
    private Integer isDelete;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}